#!/bin/bash
echo "================== 翁法罗斯平台 - 宿主机依赖一键安装 =================="
echo "注意：此脚本用于本地调试，部署时Docker会自动在容器内安装依赖！"
echo ""

# 检查Python是否安装
if ! command -v python3 &> /dev/null; then
    echo "错误：未检测到Python 3，请先执行 sudo apt install python3 python3-pip 安装！"
    exit 1
fi

# 检查pip是否可用
if ! command -v pip3 &> /dev/null; then
    echo "错误：未检测到pip3，请先执行 sudo apt install python3-pip 安装！"
    exit 1
fi

# 检查npm是否安装
if ! command -v npm &> /dev/null; then
    echo "警告：未检测到npm，前端依赖无法安装，建议执行 sudo apt install nodejs npm 安装Node.js 16+！"
    read -p "是否继续安装其他服务依赖？(y/n) " choice
    if [ "$choice" != "y" ]; then
        exit 0
    fi
fi

# 1. 安装训练服务依赖
echo "1/4 正在安装【训练服务】依赖..."
cd trainer || { echo "训练服务目录不存在！"; exit 1; }
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
if [ $? -eq 0 ]; then
    echo "训练服务依赖安装完成！"
else
    echo "训练服务依赖安装失败！"
    exit 1
fi
cd ..

# 2. 安装游戏引擎服务依赖
echo "2/4 正在安装【游戏引擎服务】依赖..."
cd game_engine || { echo "游戏引擎服务目录不存在！"; exit 1; }
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
if [ $? -eq 0 ]; then
    echo "游戏引擎服务依赖安装完成！"
else
    echo "游戏引擎服务依赖安装失败！"
    exit 1
fi
cd ..

# 3. 安装代码生成器服务依赖
echo "3/4 正在安装【代码生成器服务】依赖..."
cd code_generator || { echo "代码生成器服务目录不存在！"; exit 1; }
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
if [ $? -eq 0 ]; then
    echo "代码生成器服务依赖安装完成！"
else
    echo "代码生成器服务依赖安装失败！"
    exit 1
fi
cd ..

# 4. 安装前端可视化服务依赖（若npm可用）
if command -v npm &> /dev/null; then
    echo "4/4 正在安装【前端可视化服务】依赖..."
    cd visualizer || { echo "前端可视化服务目录不存在！"; exit 1; }
    npm install --registry=https://registry.npm.taobao.org
    if [ $? -eq 0 ]; then
        echo "前端可视化服务依赖安装完成！"
    else
        echo "前端可视化服务依赖安装失败！"
        exit 1
    fi
    cd ..
fi

# 全部完成
echo ""
echo "================== 所有依赖安装完成！ =================="
echo "本地调试命令参考："
echo "- 训练服务：cd trainer && uvicorn main:app --host 0.0.0.0 --port 8000"
echo "- 前端服务：cd visualizer && npm start"